#ifndef _OPERACION_INGRESAR_H_
#define _OPERACION_INGRESAR_H_


/*****************************************************************
 *	operacionIngresar.h
 * 
 *  Descripcion: Clase que se encarga de la construccion y ejecucion
 *  del tipo de operacion "ingresar".
 * **************************************************************/

#include <string>
#include "operacion.h"
#include "debugger.h"
#include "logger.h"
#include "tipo_struct.h"
#include "parser.h"
#include "archivo.h"
#include "modelo.h"

class OperacionIngresar : public Operacion{
	
	private:
		static std::string NOMBRE_PARAM_INGRESAR;	
		
		//atributos de la operacion
		std::string nombre_archivo;
		std::string datos_sec;
		
		/*
		 * Constructor
		 */
		OperacionIngresar(const std::string &nombre_arch, const std::string &datos_sec);
		
		void imprimir_msg(std::string msg);
		
	public:
		
		/*
		 * Recibe una cadena con la sentencia de invocacion de la operacion.
		 * Intenta construirla a partir de la misma. Si no puede devuelve null. 
		 */
		static Operacion * construir(std::string param);
		
		/*
		 * Ejecuta la operacion sobre el modelo pasado por parametro.
		 */
		void ejecutar(Modelo *modelo);
	
};

#endif
